package com.skiving.cloud.admin.service;

import com.mybatisflex.core.paginate.Page;
import com.skiving.cloud.admin.entity.SysOrg;
import com.skiving.cloud.common.utils.PageParameter;
import com.mybatisflex.core.service.IService;
import com.skiving.cloud.admin.entity.SysStation;

import java.util.List;

/**
 * 岗位表 服务层。
 *
 * @author skivingcloud
 * @since 2025-03-08
 */
public interface SysStationService extends IService<SysStation> {
    /**
     * 分页查询岗位表
     *
     * @param parameter 查询参数
     * @return 分页查询结果
     */
    Page<SysStation> queryByPage(PageParameter<SysStation> parameter);

    /**
     * 批量删除岗位信息
     * @param ids 岗位ID
     */
    void deleteBatch(String[] ids);

    /**
     * 仅设置岗位资源权限
     * @param id 岗位ID
     * @param resId 资源ID
     */
    void saveStationRes(String id, String[] resId);

    /**
     * 根据租户获取岗位树
     * @param tenantId 租户id
     * @return 岗位树
     */
    List<SysOrg> treeByTenantId(String tenantId);

    /**
     * 根据用户ID获取岗位集合
     * @param userId 用户ID
     * @return 岗位信息
     */
    List<SysStation> getStationListByUserId(String userId);
}
